package com.yusvn.scm.goods.fenhuo.service;

import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.yusvn.scm.common.BaseService;
import com.yusvn.scm.common.constant.Const;
import com.yusvn.scm.common.kit.RetKit;

/**
 * 批发分货-现货
 * @author liugz
 *
 */
public class ScmFenhuoPifaXianhuoService extends BaseService {

	// 批发现货分货 - 分页查询销售单
	public Page<Record> pifaXianhuoXxd(Kv kv) {
		return Db.use(Const.SCMDB).template("scmFenhuoPifaXianhuo.pifaXianhuoXxd", kv).paginate(getPage(kv), getLimit(kv));
	}

	// 批发现货分货 - 刷新价格 BUSSALE_REFPRICE(id)
	public RetKit pifaXianhuoSxjg(Kv kv) {
		String idsStr = kv.getStr("ids");
		idsStr = idsStr.substring(1, idsStr.length()-1);
		String[] idArr = idsStr.split(",");
		
		for(String id : idArr) {
			try {
				Db.use(Const.SCMDB).update("CALL BUSSALE_REFPRICE(?)", id);
			} catch (Exception e) {
				System.out.println(e);
				return RetKit.fail("刷新价格失败");
			}
		}
		
		return RetKit.ok("刷新价格成功");
	}
	
	// 批发现货分货 - 审核结果 BusSale_Submit(id, null); //
	public RetKit pifaXianhuoDjsh(Kv kv) {
		String idsStr = kv.getStr("ids");
		idsStr = idsStr.substring(1, idsStr.length()-1);
		String[] idArr = idsStr.split(",");
		
		for(String id : idArr) {
			try {
				Db.use(Const.SCMDB).update("CALL BusSale_Submit(?, null) ", id);
			} catch (Exception e) {
				System.out.println(e);
				return RetKit.fail("审核单据失败");
			}
		}
		
		// 生成调拨单
		RetKit retKit = pifaXianhuoScdbd(kv);
		if(retKit.getCode()!=0) {
			return retKit;
		}
		
		return RetKit.ok("审核单据成功");
	}
		
	// 批发现货分货 - 生成调拨单 TODO
	public RetKit pifaXianhuoScdbd(Kv kv) {
		// 统计总仓库存，和现货销售商品数量，用于判断是否单据库存
		
		// 如果总仓库存不满足订单商品，则统计样品仓和门店仓满足清样的商品
		
		// 生成审核的调拨单，将样品仓和门店仓的商品调入总仓，（需要判断哪几个客户的销售单的商品需要调拨，则生成几个相应的调拨单）
		
		// 
		
		return RetKit.ok();
		//return RetKit.fail("生成调拨单失败");
	}
	
}
